package com.cloudkinto.bo.order.allocate;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.util.List;

/**
 * @author long
 * @Description 调拨订单新增Bo
 * @Date 2025/3/10 11:03
 */
@Data
public class AllocatePlanAddBo {

    @ApiModelProperty(value = "目的地类型 1FBA 2三方仓")
    @NotNull(message = "目的地类型不可为空")
    private Integer destinationType;

    @ApiModelProperty(value = "地址簿id 收货地")
    @NotNull(message = "地址簿id不可为空")
    private Long addressBookId;

    @ApiModelProperty(value = "fba店铺id")
    private Long fbaShopId;

    @ApiModelProperty(value = "fba店铺名")
    private String fbaShopName;

    @ApiModelProperty(value = "发货仓库id")
    private Long deliveryWhId;

    @ApiModelProperty(value = "目标仓库id")
    private Long destinationWhId;

    @ApiModelProperty(value = "物流渠道id")
    private Long logisticsChannelId;

    @ApiModelProperty(value = "物流跟踪号")
    private String trackingNumber;

    @ApiModelProperty(value = "总计划发货量")
    private Integer totalPlanShipments;

    @ApiModelProperty(value = "总计划箱数")
    private Integer totalPlanBox;

    @ApiModelProperty(value = "附件id")
    private String fileIds;

    @ApiModelProperty(value = "参考单号")
    private String referenceNumber;

    @ApiModelProperty(value = "备注")
    private String remark;

    @ApiModelProperty(value = "期望到仓日期 yyyy-MM-dd")
    private String expectedArrivalDate;

    @ApiModelProperty(value = "期望到仓时间")
    private String expectedArrivalTime;

    @ApiModelProperty(value = "计划发货时间")
    private String planShipmentTime;

    @ApiModelProperty(value = "是否加急 false不加急 true加急")
    @NotNull(message = "是否加急不能为空")
    private Boolean urgent = Boolean.FALSE;

    @ApiModelProperty(value = "三方仓产品列表")
    private List<AllocatePlan3rdWhItemAddBo> planItem3rdWhList;

    @ApiModelProperty(value = "fba产品列表")
    private List<AllocatePlanFbaItemAddBo> planItemFbaList;
}